Most modern computer software employs a graphical user interface to convey information to and receive commands from users. The graphical user interface relies on a variety of graphical user interface (GUI) elements or objects, including icons, text, drop-down menus, dialog boxes, toolbars, buttons, and the like. A user typically interacts with a graphical user interface by using a pointing device (e.g., a mouse) to position a pointer or cursor over an object and "clicking" on the object. An example of an operating system that provides a graphical user interface is the "WINDOWS 95" operating system, which is manufactured and sold by Microsoft Corporation of Redmond, Wash.
In an operating system that employs a graphical user interface, toolbars are common GUI elements that provide an effective way to display numerous computer commands. Toolbars are GUI elements associated with an application window, which is a window displayed by a particular application program in which the primary viewing and/or editing interaction occurs. Toolbars provide access to a set of commands that are usually represented by buttons, menu buttons, comboboxes, and other UI controls. A user can invoke any command in the toolbar by clicking on the associated button or UI control. Toolbars typically present groups of controls arranged in rows or columns. Although most toolbars are visually attached to an application window, some may float above, below, or to the side of an application window. The primary advantage of toolbars is that the included commands are only one click away while the user is using the associated application program.
In most application programs that employ toolbars, the toolbars can be modified by adding or deleting buttons, or by changing the function associated with a button. This allows the user to customize a toolbar so that the toolbar provides convenient access to the commands that are most frequently used by the user. In addition, these application programs support multiple toolbars that can be turned on and off, thereby providing the user with the option of viewing two or more toolbars simultaneously. Once the user exits an application program, the associated toolbars are terminated along with the application program and are not accessible without launching the application program and directly accessing the UI associated with the particular application program.
Some prior art systems are designed to reserve a region of a display screen for toolbars at all times regardless of whether another application program is currently active. If several application programs each require a certain amount of space, the display screen workspace may be greatly reduced. These systems do not provide a uniform interface that would allow an application program to negotiate display screen real-estate with a host program module, such as an operating system or another application program.
In many prior art systems, developers have to design every component or feature that the developer needs to provide specific functionality for the systems. These prior art systems are typically difficult and time-consuming to develop, maintain, and revise. Revising these systems is a problem because features are typically intertwined such that the features cannot be individually updated or replaced. In addition, the systems are not easily integrated as they may use different programming languages or they may run in separate processes. Inevitably the developer has difficulty utilizing the functionality of pre-existing software due to the incompatibility of programming languages and so forth. Consequently, these systems do not provide a simplified way of integrating program modules and data such that key functionality can be utilized across various systems, thereby facilitating system integration.
Therefore, there is a need for a system and method for managing and presenting UI components for directly accessing data and functions associated with an application program without having to launch the application program and access the UI associated with the application program. There is a further need for a system and method that allow a UI element to negotiate display screen real-estate with its host. There is yet another need for a system and method that provide a deskbar that can be resized, moved, added or deleted via direct on-screen manipulation. There is yet another need for an architecture that facilitates system integration.